High resolution video displays are becoming more prevalent for modern data processing systems such as personal computer workstations and the like. As is well known, video displays achieve such higher resolution by increasing the density of picture elements ("pixels") within the screen area. Higher pixel density correlates to smaller pixel sizes, such that the resolution of the displayed image is increased. As a result, the display output of the workstation may be more accurate and lifelike, presenting the output of the computer or workstation in more useful and illustrative forms to the user.
As is well known not only in the art, but also to any user of modern personal computers and workstations, a cursor is a block of pixels for indicating a particular location in the display area. Cursors are generally used to indicate the "location" at which an input is desired from the user. When used in conjunction with a displayed image, such as a graphics image, the location of the cursor in the image communicates to the user the context of the desired input. The cursor must contrast with its surroundings to be visible when located within a displayed image. The displayed cursor may consist of an entire pixel block contrasting with the surroundings, such that a rectangular block appears at the pixel location. Alternatively, the cursor may be a character or other displayed image which is contained within the cursor block, for example an arrow or other icon, with bits outside of the cursor image within the cursor block appearing as though the cursor were not present. Timing features may also be included in cursor generation, for example by causing the cursor to blink on the display, further contrasting it with the surroundings.
When the display technology is purely monochromatic, as is the case with older and lower-end computer products, the generation of a cursor image which contrasts with its surroundings is relatively easy, as only two colors need be considered. U.S. Pat. No. Re 31,200, reissued Apr. 5, 1983, describes the generation of a cursor in a monochromatic display at column 21, lines 30 through 38, where control memories provide inputs to logic which develops synchronized pulses mixed with the video data for display of a cursor.
In recent years, however, many advanced personal computers and workstations use a large number of colors and patterns to display graphics images. In such polychromatic systems, the generation of the cursor image in such a manner as to provide high visibility is a more complicated task, because multiple bits of data are necessary to communicate the color and attributes of each pixel in the displayed image. Generation of a contrasting cursor thus requires consideration of a multiple-bit word which may not be directly representative of the image displayed.
For example, conventional polychromatic display systems use color palette memories in generating the graphics image. As is well known in the art, color palette RAMs are addressable memories which, for each addressable location, store digital data corresponding to the color and intensity for the pixel to be displayed. As such, the color palette RAM is a look-up table, such that the bit-mapped graphics data stored in the frame memory of the system consists of a series of color palette RAM addresses, or indices, for each pixel in the image. The image is generated by presenting the data for each pixel as an address to the color palette RAM; the color palette RAM will then present the addressed contents to a digital-to-analog converter to drive the display device accordingly. The actual colors displayed thus depend not only on the graphics data stored in the frame memory (upon which graphics instructions and other processes have been performed by the system processors), but also upon the contents of the color palette RAM.
The generation of a cursor in such a system is thus further complicated by the use of the color palette RAM and the indexed mode of color selection. A first prior technique for cursor generation is the storage of a limited set of cursor colors (e.g., two or three) in a portion of the color palette; at such pixel locations at which the cursor is to be displayed, the cursor color is generated from the cursor portion of the palette, rather than from the color palette RAM itself. This method may not necessarily present a contrasting cursor, however, as the cursor color is not selected considering the surrounding image, or considering the color which would be presented if the cursor were not enabled.
A second prior method for cursor generation in such systems is to logically invert the pixel data presented to the color palette RAM, i.e., the color index. This method uses the data of the pixel which would otherwise be displayed if the cursor were not displayed in determining the cursor color. As such, a contrasting cursor color is more likely than if a color is merely selected without regard to the pixel data. However, the cursor color in this method depends upon the contents of the color palette RAM. Only by careful design of the color palette RAM contents, such that complementary indices generate contrasting colors, can a contrasting cursor be guaranteed. Failing such efforts, the cursor color will be substantially random according to this method.
By way of further background, the above-cited U.S. patent describes the use of an exclusive-OR function to generate a contrasting color for a pixel. Attention is directed to column 12, lines 25 through 40, and to column 13, line 23 through column 14, line 18, for discussion of the XOR feature in a line-drawing and erasing context for a monochromatic display system. Column 26, line 48 through column 27, line 39, describes a color display system by analogy.
It is therefore an object of this invention to provide a graphics display system which generates a cursor image having a high likelihood that it will significantly contrast with its surroundings.
It is a further object of this invention to provide such a system which is particularly useful in a color display system.
It is a further object of this invention to provide such a system which may be used in conjunction with a color palette RAM.
It is a further object of this invention to provide such a system which may be used in a high resolution display environment.
It is a further object of this invention to provide such a system which may operate upon pixel data which is either a color index value, or a color component intensity value.
Other objects and advantages of the invention will be apparent to those of ordinary skill in the art having reference to the following specification together with the drawings.